from modules import *

class 区域管理(Page_Object):
    def __init__(self, page: Page):
        super().__init__(page)
        self.请选择所属区域 = self.page.get_by_placeholder("请选择所属区域")
        self.选择区域 = self.page.locator(".el-cascader-node__label")
        self.选择街道 = self.page.locator(".el-radio__inner").nth(1)  # 1-14
        self.选择社区 = self.page.locator(".el-radio__inner").nth(15)  #  15-到后面
        self.查询 = self.page.get_by_text("查询")
        self.重置 = self.page.get_by_text("重置")
        self.请输入区域名称 = self.page.get_by_placeholder("请输入区域名称")
        self.暂无数据 = self.page.locator(".el-table__empty-text")
        self.搜索结果第二列 = self.page.locator(".el-table__body-wrapper").locator("tbody").locator("tr").nth(0).locator("td").nth(1)
    def navigate(self):
        self.跳转("/grid")

    def search_搜索(self, 产品名称):
        self.请选择所属区域.click()
        self.选择区域.click()
        self.选择街道.click()
        self.选择社区.click()
        self.查询.click()
        # 使用 expect 进行断言，更符合 Playwright 风格
        try:
            # 先检查"暂无数据"元素是否可见且文本匹配
            expect(self.暂无数据).to_be_visible()
            expect(self.暂无数据).to_have_text("暂无数据")
            print("确认：暂无数据")
        except Exception:
            # 如果"暂无数据"不满足条件，则期望搜索结果可见
            print("数据存在，等待搜索结果...")
            expect(self.搜索结果第二列).to_be_visible()
            print("搜索结果已显示")
        self.重置.click()

        self.请输入区域名称.fill(产品名称)
        self.查询.click()
        try:
            # 先检查"暂无数据"元素是否可见且文本匹配
            expect(self.暂无数据).to_be_visible()
            expect(self.暂无数据).to_have_text("暂无数据")
            print("确认：暂无数据")
        except Exception:
            # 如果"暂无数据"不满足条件，则期望搜索结果可见
            print("数据存在，等待搜索结果...")
            expect(self.搜索结果第二列).to_be_visible()
            print("搜索结果已显示")
        self.重置.click()